#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

class Solution 
{
public:
    vector<int> sortedSquares(vector<int>& nums) 
    {
        for(int i = 0; i < nums.size(); i++)
        {
            nums[i] *= nums[i];
        }
        sort(nums.begin(), nums.end());
        return nums;
    }
};

int main()
{
    Solution s;
    
    // 测试案例1：包含正数和负数的数组
    vector<int> nums1 = {-4, -1, 0, 3, 10};
    cout << "原始数组: ";
    for(int num : nums1) {
        cout << num << " ";
    }
    cout << endl;
    
    vector<int> result1 = s.sortedSquares(nums1);
    cout << "平方后排序: ";
    for(int num : result1) {
        cout << num << " ";
    }
    cout << endl; // 输出: 0 1 9 16 100
    
    // 测试案例2：全为负数的数组
    vector<int> nums2 = {-7, -3, -2, -1};
    cout << "\n原始数组: ";
    for(int num : nums2) {
        cout << num << " ";
    }
    cout << endl;
    
    vector<int> result2 = s.sortedSquares(nums2);
    cout << "平方后排序: ";
    for(int num : result2) {
        cout << num << " ";
    }
    cout << endl; // 输出: 1 4 9 49
    
    return 0;
}
